<?php

/**
 *   The interface defined the basic
 *   behavior for test service.
 */
abstract class Test{
    /**
     *   Test can always be ran
     *   and it need a reporter to
     *   keep trace of the process
     */
    abstract function run(Reporter $reporter);

    /**
     *   Get the name of the test.
     */
    abstract function getLabel();

    /**
     *   Get the size of the suite.
     *   Case will always return 1.
     */
    abstract function getSize();
}

?>
